public class MyCycleList {
    private int[] elem;
    private int front;//对头用来删除
    private int rear;//对尾

    public boolean isEmpty(){
        return rear==front;
    }
    public boolean isFull(){
        return (rear+1)% elem.length==front;
    }
    //分别对两个代码简化
    public boolean enQueue(int value){
        if(isFull()){
            return false;
        }
        elem[rear]=value;
        rear=(rear+1)&elem.length;
        return true;
    }
    public boolean deQueue(int value){

        if(isEmpty()){
            return false;
        }
        front=(front+1)%elem.length;
        return true;
    }

    public int getFront(){
        if(isEmpty()){
            return -1;
        }
        return elem[front];
    }
    public int getRear(){
        if(isEmpty()){
            return -1;
        }
        int index=(rear==0) ? elem.length-1 : rear-1;
        //你也可以不用减，
        //我浪费了空间，这就是oj
        //因为我使用的是浪费空间的方式
        //你可以当老6-多给一个，这个简单，你手动加1

        //或者使用usedSize
        //两个栈来回替换
        //入栈的时候进到不为空的队列
        //
        return elem[index];
    }
    //服务器和客户端
    //1.当两个队列都为空的时候，我模拟实现的栈就是空的

}
